Next: Fancy Diary Display, Previous: Non-Gregorian Diary, Up: Advanced Calendar/Diary Usage [Contents][Index]
Diary display works by preparing the list of diary entries and
then running the function specified by the variable
diary-display-function. The default value
diary-fancy-display displays diary entries and
holidays by copying them into a special buffer that exists only
for the sake of display. Copying diary entries to a separate
buffer provides an opportunity to change the displayed text to
make it prettier—for example, to sort the entries by the
dates they apply to.
Ordinarily, the fancy diary buffer does not show days for
which there are no diary entries, even if that day is a holiday.
If you want such days to be shown in the fancy diary buffer, set
the variable diary-list-include-blanks to
t.
The fancy diary buffer enables View mode (see View Mode).
The alternative display method
diary-simple-display shows the actual diary buffer,
and uses invisible text to hide entries that don’t apply.
Holidays are shown in the mode line. The advantage of this method
is that you can edit the buffer and save your changes directly to
the diary file. This method is not as flexible as the fancy
method, however. For example, it cannot sort entries. Another
disadvantage is that invisible text can be confusing. For
example, if you copy a region of text in order to paste it
elsewhere, invisible text may be included. Similarly, since the
diary buffer as you see it is an illusion, simply printing the
buffer may not print what you see on your screen.
For this reason, there is a special command to print hard copy
of the diary buffer as it appears; this command is
M-x diary-print-entries. It works with either display
method, although with the fancy display you can also print the
buffer like any other. To print a hard copy of a day-by-day diary
for a week, position point on the first day of the week, type
7 d, and then do M-x diary-print-entries.
As usual, the inclusion of the holidays slows down the display
slightly; you can speed things up by setting the variable
diary-show-holidays-flag to nil.
This command prepares a temporary buffer that contains only
the diary entries currently visible in the diary buffer. Unlike
with the simple display, the other irrelevant entries are really
absent, not just hidden. After preparing the buffer, it runs the
hook diary-print-entries-hook. The default value of
this hook sends the data directly to the printer with the command
lpr-buffer (see Printing). If you want to use a
different command to do the printing, just change the value of
this hook. Other uses might include, for example, rearranging the
lines into order by day and time.
You can edit the diary entries as they appear in the simple
diary window, but it is important to remember that the buffer
displayed contains the entire diary file, with portions
of it concealed from view. This means, for instance, that the
C-f (forward-char) command can put point
at what appears to be the end of the line, but what is in reality
the middle of some concealed line.
Be careful when editing the diary entries in the simple
display! Inserting additional lines or adding/deleting
characters in the middle of a visible line cannot cause problems,
but editing at the end of a line may not do what you expect.
Deleting a line may delete other invisible entries that follow
it. Before editing the simple diary buffer, it is best to display
the entire file with s
(diary-show-all-entries).
Next: Fancy Diary Display, Previous: Non-Gregorian Diary, Up: Advanced Calendar/Diary Usage [Contents][Index]